# 数据来源：https://www.kaggle.com/crawford/pm25-data-for-five-chinese-cities/data
# 现在我们有北上广、深圳、和沈阳5个城市空气质量数据，请绘制出5个城市的PM2.5随时间的变化情况
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
file_path = './PM2.5/BeijingPM20100101_20151231.csv'
df = pd.read_csv(file_path)
#
# print(df.head())
# print(df.info())
# 分析发现：year，month，day，hour都是单独的一列
# pm的值相对时间来说少了一半

# 时间的变化需要将时间整理成datatime，并且设置为index
#
period = pd.PeriodIndex(year=df['year'], month=df['month'], day=df['day'], hour=df['hour'], freq='H')

df["datetime"] = period
# print(df.head(10))

#把datetime 设置为索引
df.set_index("datetime",inplace=True)

# print(df.head())

# 时间降采样，然后统计
df = df.resample('7D').mean()
# print(a)
# print(type(a))
# 以美国的站点试试，缺失值最少,暂时先不处理吧
data = df['PM_US Post']
# print(data.isnull())

# 画图
plt.figure(figsize=(20,8),dpi=80)
_x = data.index
_y = data.values
plt.plot(range(len(_x)),_y)
_x = [i.strftime('%Y-%m-%d') for i in _x]
# plt.xticks(range(len(_x)),_x,rotation=90)
# 通过修改xtick的频率来显示时间
plt.xticks(range(0,len(_x),10),_x[::10],rotation=90)
plt.show()



